#!/bin/bash

# 定义颜色
function color() {
    RED='\033[0;31m'
    GREEN='\033[0;32m'
    YELLOW='\033[0;33m'
    BLUE='\033[0;34m'
    NC='\033[0m' # 无颜色
    CYAN='\e[1;36m'
}

mstack_script_dir=$(dirname "$(realpath "${BASH_SOURCE[0]}")")
source $mstack_script_dir/mstack-script/common_variables.sh

clear
# 定义脚本列表，筛选并排序以数字开头且以.sh结尾的文件
scripts=($(find $mstack_script_dir -type f -name '[0-9]*.sh' | sort -t'/' -k2))

# 函数：显示菜单并让用户选择
show_menu() {
    echo -e "${CYAN}请选择要执行的脚本：${NC}"
    for i in "${!scripts[@]}"; do
        # 使用 basename 来显示文件名，而不显示路径
        script_name=$(basename "${scripts[$i]}")
        echo -e "${GREEN}$((i + 1)). $script_name${NC}"
    done
    echo -e "${YELLOW}0. 退出${NC}"
}

# 主逻辑
while true; do
    show_menu
    read -p "请输入你的选择 (0-${#scripts[@]}): " choice

    if [[ $choice -ge 1 && $choice -le ${#scripts[@]} ]]; then
        clear
        script_to_run=${scripts[$((choice - 1))]}

        echo -e "${BLUE}正在执行脚本: $(basename "$script_to_run")${NC}"
        bash "$script_to_run"
        read -n 1 -s -r -p "按任意键返回..."
        clear
    elif [[ $choice -eq 0 ]]; then
        echo -e "${RED}退出程序${NC}"
        break
    else
        echo -e "${YELLOW}无效的选择，请重新输入.${NC}"
    fi
done
